<!-- saved from url=(0014)about:internet --><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
<!-- Standard Head Part -->
<head>
<title>NUnit - EventListeners</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta http-equiv="Content-Language" content="en-US">
<link rel="stylesheet" type="text/css" href="nunit.css">
<link rel="shortcut icon" href="favicon.ico">
</head>
<!-- End Standard Head Part -->

<body>

<!-- Standard Header for NUnit.org -->
<div id="header">
  <a id="logo" href="http://www.nunit.org"><img src="img/logo.gif" alt="NUnit.org" title="NUnit.org"></a>
  <div id="nav">
    <a href="http://www.nunit.org">NUnit</a>
    <a class="active" href="index.html">Documentation</a>
  </div>
</div>
<!-- End of Header -->

<div id="content">

<h3>EventListeners (NUnit 2.4.4)</h3>

<h4>Purpose</h4>
<p>EventListeners are able to respond to events that occur in the course
of a test run, usually by recording information of some kind. Note that
EventListeners called asynchronously with respect to test execution and
are not able to affect the actual execution of the test.

<h4>Extension Point</h4>
<p>Addins use the host to access this extension point by name:

<pre>
	IExtensionPoint listeners = host.GetExtensionPoint( "EventListeners" );</pre>

<h4>Interface</h4>
<p>The extension object passed to Install must implement the EventListener interface:

<pre>
	public interface EventListener
	{
		void RunStarted( string name, int testCount );
		void RunFinished( TestResult result );
		void RunFinished( Exception exception );
		void TestStarted(TestName testName);
		void TestFinished(TestResult result);
		void SuiteStarted(TestName testName);
		void SuiteFinished(TestResult result);
		void UnhandledException( Exception exception );
		void TestOutput(TestOutput testOutput);
	}
</pre>

<p>You must provide all the methods, but the body may be empty for any
that you have no need of.


</div>

<!-- Submenu -->
<div id="subnav">
<ul>
<li><a href="index.html">NUnit 2.5.9</a></li>
<ul>
<li><a href="getStarted.html">Getting&nbsp;Started</a></li>
<li><a href="assertions.html">Assertions</a></li>
<li><a href="constraintModel.html">Constraints</a></li>
<li><a href="attributes.html">Attributes</a></li>
<li><a href="runningTests.html">Running&nbsp;Tests</a></li>
<li><a href="extensibility.html">Extensibility</a></li>
<ul>
<li><a href="customConstraints.html">Custom&nbsp;Constraints</a></li>
<li><a href="nunitAddins.html">NUnit&nbsp;Addins</a></li>
<ul>
<li><a href="suiteBuilders.html">SuiteBuilders</a></li>
<li><a href="testcaseBuilders.html">TestcaseBuilders</a></li>
<li><a href="testDecorators.html">TestDecorators</a></li>
<li><a href="testcaseProviders.html">TestcaseProviders</a></li>
<li><a href="datapointProviders.html">DatapointProviders</a></li>
<li id="current"><a href="eventListeners.html">EventListeners</a></li>
</ul>
<li><a href="extensionTips.html">Tips&nbsp;for&nbsp;Extenders</a></li>
</ul>
<li><a href="releaseNotes.html">Release&nbsp;Notes</a></li>
<li><a href="samples.html">Samples</a></li>
<li><a href="license.html">License</a></li>
</ul>
</ul>
</div>
<!-- End of Submenu -->


<!-- Standard Footer for NUnit.org -->
<div id="footer">
  Copyright &copy; 2010 Charlie Poole. All Rights Reserved.
</div>
<!-- End of Footer -->

</body>
</html>
